package com.hyh.utils.common;

import com.alibaba.fastjson.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Base64;
import java.util.List;

/**
 * byte工具类
 *
 * @Author: heyuhua
 * @Date: 2021/1/6 17:24
 */
public class ByteUtils {

    private static final Logger LOG = LoggerFactory.getLogger(ByteUtils.class);

    /**
     * byte数组转对象
     *
     * @param bytes
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T byte2Object(byte[] bytes, Class<T> clazz) {
        T t = null;
        if (null != bytes) {
            try {
                String value = Base64.getEncoder().encodeToString(bytes);
                t = JSON.parseObject(value, clazz);
            } catch (Exception e) {
                e.printStackTrace();
                LOG.error("byte数组转对象异常", e);
            }
        }
        return t;
    }

    /**
     * byte数组转集合
     *
     * @param bytes
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> byte2Array(byte[] bytes, Class<T> clazz) {
        List<T> list = null;
        if (null != bytes) {
            try {
                String value = Base64.getEncoder().encodeToString(bytes);
                list = JSON.parseArray(value, clazz);
            } catch (Exception e) {
                e.printStackTrace();
                LOG.error("byte数组转集合异常", e);
            }
        }
        return list;
    }

}
